home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Latest Shareware Programs: Warp
/
OS-2 WARP - Latest Shareware Programs.iso
/
zipped.os2
/
treiber.1
/
dvi15f-1.arj
/
MAKEDOT.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1994-09-01
|
35KB
|
1,059 lines
ΓòÉΓòÉΓòÉ 1. 1 Einleitung ΓòÉΓòÉΓòÉ
Das Programm makedot wird zur Erzeugung von Parameterdateien fБr dvidot
verwendet. Es hat hierfБr zwei Funktionen:
o Umwandlung einer Textdatei in eine Parameterdatei (DOT-Datei).
o Umwandlung einer Parameterdatei (DOT-Datei) in eine Textdatei.
Wenn Sie eine Parameterdatei Дndern wollen, mБssen Sie diese zunДchst in eine
Textdatei umwandeln lassen. Diese Textdatei kФnnen Sie dann mit einem
Texteditor Дndern. Anschlieсend kann aus dieser Textdatei eine Parameterdatei
erzeugt werden.
makedot kann aber auch zur Erstellung von BinДrdateien wie sie z.B. fБr die
Option +init-files von dvihplj und dvidot benФtigt werden verwendet werden.
ΓòÉΓòÉΓòÉ 2. 2 Aufruf ΓòÉΓòÉΓòÉ
Umwandlung einer Textdatei in eine Parameterdatei
Umwandlung einer Parameterdatei in eine Textdatei
Konvertierung zwischen verschiedenen DOT-Dateiformaten
Umwandlung einer Textdatei in eine BinДrdatei
Umwandlung einer BinДrdatei in eine Textdatei
ΓòÉΓòÉΓòÉ 2.1. 2.1 Umwandlung einer Textdatei in eine Parameterdatei ΓòÉΓòÉΓòÉ
Der Aufruf
makedot -c [Optionen] eingabe_datei [ausgabe_datei]
erzeugt aus der Textdatei eingabe_datei die DOT-Datei ausgabe_datei. Die
Standarderweiterung fБr die Ausgabedatei ist DOT. Wenn keine Ausgabedatei
angegeben wird, wird der Name der Eingabedatei (mit .dot) verwendet. Wenn fБr
die Eingabedatei `-' angegeben wird, so wird von der Standardeingabe (stdin)
gelesen.
ΓòÉΓòÉΓòÉ 2.2. 2.2 Umwandlung einer Parameterdatei in eine Textdatei ΓòÉΓòÉΓòÉ
Der Aufruf
makedot -d [Optionen] eingabe_datei [ausgabe_datei]
erzeugt aus der DOT-Datei eingabe_datei die Textdatei ausgabe_datei. Die
Standarderweiterung fБr die Eingabedatei ist DOT. Wenn keine Ausgabedatei
angegeben wird, wird der Name der Eingabedatei (ohne Erweiterung .dot)
verwendet. Wenn fБr die Ausgabedatei `-' angegeben wird, so erfolgt die
Ausgabe auf die Standardausgabe (stdout).
ΓòÉΓòÉΓòÉ 2.3. 2.3 Konvertierung zwischen verschiedenen DOT-Dateiformaten ΓòÉΓòÉΓòÉ
dvidot 1.4n und spДter kann alte DOT-Dateien nicht mehr verwenden. Diese
mБssen mit makedot konvertiert werden. Der Aufruf
makedot -r [Optionen] eingabe_datei [ausgabe_datei]
konvertiert die DOT-Datei eingabe_datei in die DOT-Datei ausgabe_datei. Wenn
keine Ausgabedatei angegeben ist, wird die Eingabedatei mit der konvertierten
Datei Бberschrieben.
Wenn `-o' angegeben wird, erzeugt makedot eine Datei, die von Дlteren
Versionen von makedot und dvidot bearbeitet werden kann -- sofern eine
Umsetzung mФglich ist. Um z.B. eine neue DOT-Datei in das alte Format zu
konvertieren, kФnnen Sie
makedot -ro <eingabe_date> [<ausgabe_datei>]
verwenden.
Wenn `-q' angegeben wird, gibt makedot nicht seine Titelzeile aus.
═══ 2.4. 2.4 Umwandlung einer Textdatei in eine BinДrdatei ═══
Der Aufruf
makedot -b [Optionen] eingabe_datei ausgabe_datei
wandelt die Textdatei eingabe_datei in die BinДrdatei ausgabe_datei um. Wenn
fБr die Eingabedatei `-' angegeben wird, so wird von der Standardeingabe
(stdin) gelesen.
Wenn `-q' angegeben wird, gibt makedot nicht seine Titelzeile aus.
═══ 2.5. 2.5 Umwandlung einer BinДrdatei in eine Textdatei ═══
Der Aufruf
makedot -a [<Optionen>] <eingabe_datei> <ausgabe_datei>
wandelt die BinДrdatei eingabe_datei in die Textdatei ausgabe_datei um. Wenn
fБr die Ausgabedatei `-' angegeben wird, so erfolgt die Ausgabe auf die
Standardausgabe (stdout).
Wenn `-q' angegeben wird, gibt makedot nicht seine Titelzeile aus.
═══ 3. 3 Aufbau der Textdatei fБr eine Parameterdatei ═══
Eine Textdatei kann Kommentarzeilen enthalten. Diese beginnen mit einem `*'
oder `%'. Alle darauffolgenden Zeichen dieser Zeilen werden dann ignoriert.
Auch Leerzeilen werden ignoriert.
Alle anderen Zeilen enthalten ein SchlБsselwort nach dem ein
Gleichheitszeichen stehen muс. Nach dem Gleichheitszeichen folgen die
Parameter fБr dieses SchlБsselwort. (Die Parameter kФnnen bei manchen
SchlБsselwФrtern auch fehlen.)
═══ 3.1. 3.1 SchlБsselwФrter ═══
In den folgenden Listen sind alle SchlБsselwФrter aufgefБhrt. Sie mБssen alle
hier gezeigten SchlБsselwФrter (auсer den in eckigen Klammern
eingeschlossenen) benutzen, die Reihenfolge ist beliebig. Optionale Teile
einer Zeile sind in eckige Klammern eingeschlossen, Alternativen durch
senkrechte Striche getrennt und in runde Klammern eingeschlossen. FБr die
verschiedenen Sorten von Argumenten werden diese AbkБrzungen benutzt:
d LДngenangabe (dimension): Zahl und TeX-Einheit (auch px)
e Ausdruck
n Zahl
s Codesequenz
t Text
Diese Argumenttypen sind weiter unten erklДrt. Je nach Einstellung von TYPE=
kФnnen verschiedene SchlБsselwФrter verwendet werden.
═══ 3.1.1. 3.1.1 SchlБsselwФrter fБr alle Parameterdateitypen ═══
Die folgenden SchlБsselwФrter kФnnen fБr beide Arten von Parameterdateien
verwendet werden.
[COMMENT=[t]]
Kommentar. Der Kommentar wird in der Parameterdatei gespeichert aber
ignoriert.
ENV_NAME=t
Name einer Environment-Variablen, aus der dvidot Optionen entnehmen soll.
FONT_PATH=t
Pfad fБr Zeichensatzdateien. Dies ist die Voreinstellung fБr +font-files.
LOG_NAME=t
Name der Protokolldatei.
PAGE_HEIGHT=d
SeitenhФhe. Voreinstellung fБr +height.
PAGE_WIDTH=d
Seitenbreite. Voreinstellung fБr +width.
RESOLUTION=n1 n2
AuflФsung. n1 ist die Voreinstellung fБr +resolution-x, n2 ist die
Voreinstellung fБr +resolution-y.
[TYPE=[(DOT | DOT_HORZ | BITMAP)]]
Typ der Parameterdatei. Die Typen DOT und DOT_HORZ erzeugen eine
Parameterdatei fБr Matrixdrucker. Der Typ BITMAP erzeugt eine
Parameterdatei fБr die Erzeugung einer Grafikdatei. Bei TYPE= ohne
Argument oder bei Fehlen von TYPE= wird TYPE=DOT angenommen.
[VF_PATH=t]
Pfad fБr VF-Dateien. Dies ist die Voreinstellung fБr +virtual-fonts und
sollte leergelassen werden.
═══ 3.1.2. 3.1.2 SchlБsselwФrter fБr TYPE=DOT ═══
Die folgenden SchlБsselwФrter kФnnen nur in Parameterdateien verwendet werden,
die TYPE=DOT enthalten.
BLANK_WIDTH=[n]
Breite eines Leerzeichens. Leerzeichen werden am linken Rand benutzt, um
den Druckkopf nach rechts zu bewegen. Hierzu wird die Breite eines
Leerzeichens in Grafikpunkten benФtigt. Sollen keine Leerzeichen zum
EinrБcken benutzt werden, so ist das Argument leer zu lassen.
COLUMNS=n
Maximale Anzahl der Druckspalten im Grafikmodus. Dieser Wert ist eine
obere Grenze fБr +width.
[DOUBLE_SIDED_LONG=[s]]
Mit dieser Codesequenz wird der Drucker so eingestellt, daс er automatisch
zweiseitig druckt, d.h., die erste Ausgabeseite wird auf die Vorderseite,
die zweite auf die RБckseite der ersten Blattes gedruckt; die dritte auf
die Vorderseite des zweiten Blattes usw. wobei entlang der lДngeren Kante
gebunden wird. Wenn hier eine Codesequenz angegeben ist, wird die
Kommandozeilenoption +double-sided:long verfБgbar.
[DOUBLE_SIDED_SHORT=[s]]
Mit dieser Codesequenz wird der Drucker so eingestellt, daс er automatisch
zweiseitig druckt, d.h., die erste Ausgabeseite wird auf die Vorderseite,
die zweite auf die RБckseite der ersten Blattes gedruckt; die dritte auf
die Vorderseite des zweiten Blattes usw. wobei entlang der kБrzeren Kante
gebunden wird. Wenn hier eine Codesequenz angegeben ist, wird die
Kommandozeilenoption +double-sided:short verfБgbar.
EXIT=[s]
Die Codesequenz, die am Ende des Drucks an den Drucker geschickt wird.
FF_METHOD=(FF | LF)
Seitenvorschub mit der Codesequenz FORM_FEED (siehe unten) oder mit vielen
ZeilenvorschБben (siehe FORM_LENGTH).
FORM_FEED=[s]
Codesequenz zum Erzeugen eines Blattvorschubs. Wird bei FF_METHOD=FF
benФtigt. Die LДnge des Vorschubs in Vorschub-Einheiten (Grafikpunkte fБr
VMU=1) ist in der Variablen `form_feed' verfБgbar.
FORM_LENGTH=[d]
BlattlДnge. Voreinstellung fБr +form-length. Wird nur bei FF_METHOD=LF
benФtigt. Wenn d nicht angegeben ist, verwendet dvidot die eingestellte
SeitenhФhe als BlatthФhe.
GRAPH_END=[s]
Codesequenz, die unmittelbar nach den Grafikdaten an den Drucker geschickt
wird. Ъblicherweise leer.
GRAPH_MODE=[s]
Die Codesequenz, die den Grafikmodus einleitet. Auf diese Sequenz folgen
unmittelbar die binДren Grafikdaten. Die Breite der Grafik (Grafikpunkte)
ist in der Variablen `pixels' verfБgbar.
INIT1=[s]
Die Codesequenz, die zu Beginn an den Drucker geschickt wird, falls
+slow:off (Voreinstellung) eingestellt ist.
INIT2=[s]
Die Codesequenz, die zu Beginn an den Drucker geschickt wird, falls
+slow:on eingestellt ist.
LINE_FEED=[s]
Die Codesequenz zum Erzeugen eines Zeilenvorschubs. Auсerdem wird diese
Codesequenz bei FF_METHOD=LF verwendet. Die GrФсe des Zeilenvorschubs
(Vorschub-Einheiten oder Grafikpunkte fБr VMU=1) ist in der Variablen
`line_feed' verfБgbar. Falls eine POS_Y-Sequenz definiert ist, wird
LINE_FEED nicht verwendet, auсer fБr den Seitenvorschub falls FF_METHOD=LF
eingestellt ist.
MAX_LF=n
Dies ist die der grФсte mit einer Druckersteuersequenz (siehe LINE_FEED)
erzielbare Zeilenvorschub in Vorschub-Einheiten (Grafikpunkte fБr VMU=1).
GrФсere ZeilenvorschБbe werden von dvidot aus mehreren kleineren
ZeilenvorschБben zusammengesetzt.
MAX_WIDTH=[n1 [n2]]
Wenn die Seitenbreite (in Grafikpunkte umgerechnet) auf einen dieser Werte
eingestellt wird, so wird die Seitenbreite um eins verringert, damit der
Drucker keinen Zeilenvorschub erzeugt, wenn der rechte Rand erreicht wird.
Auf diese Weise wird am rechten Rand ein Grafikpunkt leergelassen.
METHOD=n1 n2
Druckmethode. Der Wert n1 gibt an, wieviele Bytes pro Grafikspalte an den
Drucker geschickt werden mБssen (1 bis 8). Der Wert n2 gibt an, wie oft
eine Zeile Бberdruckt werden soll (mit kleinstem Zeilenabstand
dazwischen). Wenn z.B. der Nadelabstand 1 /72 Zoll betrДgt und der Drucker
halbwegs zuverlДssig 1/216-Zoll-PapervorschБbe ausfБhren kann, sollte fБr
n2 3 angegeben werden. Damit wird in diesem Beispiel eine vertikale
AuflФsung von 216 DPI erzielt. FБr n2 kФnnen Werte von 1 bis 6 verwendet
werden.
ONE_LINE_FEED=[n]
Dieser Wert wird bei INIT1 und INIT2 zum Programmieren des Zeilenabstandes
des Druckers verwendet. Wenn bei LINE_FEED (siehe unten) der Zeilenabstand
umprogrammiert wird, so muс das Argument bei ONE_LINE_FEED leer bleiben.
Der Drucker muс beim Empfang des Zeichens LF den mit ONE_LINE_FEED
eingestellten Zeilenvorschub erzeugen.
PINS=n1 n2
Bitnummern der Nadeln. n1 ist das Bit, das fБr die oberste Nadel zustДndig
ist, n2 ist das Bit, das fБr die unterste Nadel zustДndig ist (meistens
PINS=0 7 oder PINS=7 0). Es kФnnen Werte von 0 bis 7 angegeben werden.
POS_X=[s]
Codesequenz zum direkten horizontalen Positionieren des Druckkopfs. Die
horizontale Position in Grafikpunkten ist in der Variablen `pos_x'
verfБgbar.
[POS_Y=[s]]
Codesequenz zum direkten vertikalen Positionieren des Druckkopfs. Die
vertikale Position in Grafikpunkten ist in der Variablen `pos_y'
verfБgbar. Falls eine POS_Y-Sequenz definiert ist, wird LINE_FEED nicht
verwendet, auсer fБr den Seitenvorschub falls FF_METHOD=LF eingestellt
ist.
S_OPTION=(OFF | SLOW | DOUBLE_STRIKE)
Bedeutung der Option +slow. Bei Einstellung von OFF gibt es +slow
Бberhaupt nicht. Bei SLOW bewirkt +slow:on die Verwendung von INIT2 statt
INIT1. Bei DOUBLE_STRIKE bewirkt +slow:on die Verwendung von INIT2 statt
INIT1 sowie das Drucken mit zwei DurchlДufen pro Zeile. Wenn mit zwei
DurchlДufen pro Zeile gedruckt wird, werden beim ersten Durchlauf nur die
1., 3., usw. Grafikspalte bedruckt, beim zweiten Durchlauf nur die 2., 4.,
usw. Grafikspalte. Dies ist fБr Drucker gedacht, die eine Nadel nicht
zweimal in Folge abfeuern kФnnen.
[VMU=n]
Vertical Motion Unit. Dies ist die Anzahl der Grafikpunkte pro
Vorschub-Einheit. Falls der Drucker z.B. 360 DPI vertikal drucken kann,
aber das Papier nur in 1/180"-Schritten transportieren kann, ist VMU=2
einzustellen. Wenn nichts oder 0 fБr VMU eingestellt ist, wird VMU=1
angenommen. Bei VMU=1 entsprechen die Vorschub-Einheiten den
Grafikpunkten.
═══ 3.1.3. 3.1.3 SchlБsselwФrter fБr TYPE=DOT_HORZ ═══
Die folgenden SchlБsselwФrter kФnnen nur in Parameterdateien verwendet werden,
die TYPE=DOT_HORZ enthalten.
BITS=n1 n2
Bitanordnung innerhalb der Grafikbytes. Bit n1 ist links, Bit n2 ist
rechts. Es kann nur `BITS=7 0' oder `BITS=0 7' verwendet werden.
COLUMNS=n
Maximale Anzahl der Druckspalten im Grafikmodus. Dieser Wert ist eine
obere Grenze fБr +width.
[DOUBLE_SIDED_LONG=[s]]
Mit dieser Codesequenz wird der Drucker so eingestellt, daс er automatisch
zweiseitig druckt, d.h., die erste Ausgabeseite wird auf die Vorderseite,
die zweite auf die RБckseite der ersten Blattes gedruckt; die dritte auf
die Vorderseite des zweiten Blattes usw. wobei entlang der lДngeren Kante
gebunden wird. Wenn hier eine Codesequenz angegeben ist, wird die
Kommandozeilenoption +double-sided:long verfБgbar.
[DOUBLE_SIDED_SHORT=[s]]
Mit dieser Codesequenz wird der Drucker so eingestellt, daс er automatisch
zweiseitig druckt, d.h., die erste Ausgabeseite wird auf die Vorderseite,
die zweite auf die RБckseite der ersten Blattes gedruckt; die dritte auf
die Vorderseite des zweiten Blattes usw. wobei entlang der kБrzeren Kante
gebunden wird. Wenn hier eine Codesequenz angegeben ist, wird die
Kommandozeilenoption +double-sided:short verfБgbar.
EXIT=[s]
Die Codesequenz, die am Ende des Drucks an den Drucker geschickt wird.
FF_METHOD=(FF | LF)
Seitenvorschub mit der Codesequenz FORM_FEED (siehe unten) oder mit vielen
ZeilenvorschБben (siehe FORM_LENGTH).
FIRST_BYTE=(TOP | BOTTOM) (LEFT | RIGHT)
Hiermit wird eingestellt, welcher Ecke der Grafik das erste Byte der zu
druckenden Grafikdaten entspricht. Mit TOP wird die oberste Zeile zuerst
gedruckt, mit BOTTOM wird die unterste Zeile zuerst gedruckt. Mit LEFT
kommt die linke Spalte jeder Zeile zuerst, mit RIGHT kommt die rechte
Spalte jeder Zeile zuerst. Die Einstellung
FIRST_BYTE=TOP LEFT
kommt am hДufigsten vor.
FORM_FEED=[s]
Codesequenz zum Erzeugen eines Blattvorschubs. Wird bei FF_METHOD=FF
benФtigt. Die LДnge des Vorschubs in Vorschub-Einheiten (Grafikpunkte fБr
VMU=1) ist in der Variablen `form_feed' verfБgbar.
FORM_LENGTH=[d]
BlattlДnge. Voreinstellung fБr +form-length. Wird nur bei FF_METHOD=LF
benФtigt. Wenn d nicht angegeben ist, verwendet dvidot die eingestellte
SeitenhФhe als BlatthФhe.
INIT1=[s]
Die Codesequenz, die zu Beginn an den Drucker geschickt wird, falls
+slow:off (Voreinstellung) eingestellt ist.
INIT2=[s]
Die Codesequenz, die zu Beginn an den Drucker geschickt wird, falls
+slow:on eingestellt ist.
LINE_FEED=[s]
Die Codesequenz zum Erzeugen eines Zeilenvorschubs. Auсerdem wird diese
Codesequenz bei FF_METHOD=LF verwendet. Die GrФсe des Zeilenvorschubs
(Vorschub-Einheiten oder Grafikpunkte fБr VMU=1) ist in der Variablen
`line_feed' verfБgbar. Falls eine POS_Y-Sequenz definiert ist, wird
LINE_FEED nicht verwendet, auсer fБr den Seitenvorschub falls FF_METHOD=LF
eingestellt ist.
MAX_LF=n
Dies ist die der grФсte mit einer Druckersteuersequenz (siehe LINE_FEED)
erzielbare Zeilenvorschub in Vorschub-Einheiten (Grafikpunkte fБr VMU=1).
GrФсere ZeilenvorschБbe werden von dvidot aus mehreren kleineren
ZeilenvorschБben zusammengesetzt.
MAX_WIDTH=[n1 [n2]]
Wenn die Seitenbreite (in Grafikpunkte umgerechnet) auf einen dieser Werte
eingestellt wird, so wird die Seitenbreite um eins verringert, damit der
Drucker keinen Zeilenvorschub erzeugt, wenn der rechte Rand erreicht wird.
Auf diese Weise wird am rechten Rand ein Grafikpunkt leergelassen.
ONE_LINE_FEED=[n]
Dieser Wert wird bei INIT1 und INIT2 zum Programmieren des Zeilenabstandes
des Druckers verwendet. Wenn bei LINE_FEED (siehe unten) der Zeilenabstand
umprogrammiert wird, so muс das Argument bei ONE_LINE_FEED leer bleiben.
Der Drucker muс beim Empfang des Zeichens LF den mit ONE_LINE_FEED
eingestellten Zeilenvorschub erzeugen.
POS_X=[s]
Codesequenz zum direkten horizontalen Positionieren des Druckkopfs. Die
horizontale Position in Grafikpunkten ist in der Variablen `pos_x'
verfБgbar.
[POS_Y=[s]]
Codesequenz zum direkten vertikalen Positionieren des Druckkopfs. Die
vertikale Position in Grafikpunkten ist in der Variablen `pos_y'
verfБgbar. Falls eine POS_Y-Sequenz definiert ist, wird LINE_FEED nicht
verwendet, auсer fБr den Seitenvorschub falls FF_METHOD=LF eingestellt
ist.
ROW_BEGIN=[s]
Die Codesequenz, die eine Grafikzeile einleitet. Auf diese Sequenz folgen
unmittelbar die binДren Grafikdaten. Die Breite der Grafik (Grafikpunkte)
ist in der Variablen `pixels' verfБgbar.
ROW_END=[s]
Die Codesequenz, die unmittelbar nach einer Grafikzeile geschickt wird.
Die horizontale Position darf durch ROW_END verДndert werden, jedoch wird
angenommen, daс der Cursor durch ROW_END in die nДchste Grafikzeile
gestellt wird.
S_OPTION=(OFF | SLOW)
Bedeutung der Option +slow. Bei Einstellung von OFF gibt es +slow
Бberhaupt nicht. Bei SLOW bewirkt +slow:on die Verwendung von INIT2 statt
INIT1.
[VMU=n]
Vertical Motion Unit. Dies ist die Anzahl der Grafikpunkte pro
Vorschub-Einheit. Falls der Drucker z.B. 360 DPI vertikal drucken kann,
aber das Papier nur in 1/180"-Schritten transportieren kann, ist VMU=2
einzustellen. Wenn nichts oder 0 fБr VMU eingestellt ist, wird VMU=1
angenommen. Bei VMU=1 entsprechen die Vorschub-Einheiten den
Grafikpunkten.
═══ 3.1.4. 3.1.4 SchlБsselwФrter fБr TYPE=BITMAP ═══
Die folgenden SchlБsselwФrter kФnnen nur in Parameterdateien verwendet werden,
die TYPE=BITMAP enthalten.
ALIGN_WIDTH=n
Die Grafikbreite wird auf ein ganzzahlig Vielfaches von n Bytes gerundet.
FБr n kФnnen die Werte 1, 2 und 4 verwendet werden.
BITS=n1 n2
Bitanordnung innerhalb der Grafikbytes. Bit n1 ist links, Bit n2 ist
rechts. Es kann nur `BITS=7 0' oder `BITS=0 7' verwendet werden.
CHECKSUM=n1 n2 t n3 e
Hiermit wird eingestellt, wie der Wert der Variablen `checksum' fБr die
HEADER-Codesequenz zu berechnen ist. ZunДchst wird die Variable `checksum'
auf den Wert n3 initialisiert. Dann erfolgt eine Schleife Бber die
HEADER-Codesequenz ab Byte-Position n1 mit n2 SchleifendurchlДufen: Je
nach t werden 8, 16 oder 32 Bits dem Header entnommen und als Wert fБr die
Variable `value' verwendet; der Ausdruck e wird ausgewertet und der
Variablen `checksum' zugewiesen; es wird um 1, 2 oder 4 Bytes
weitergegangen. Der Wert von `checksum' nach n2 SchleifendurchlДufen ist
der Wert, der fБr `checksum' bei HEADER eingesetzt wird. Im fБr diese
Berechnung verwendeten HEADER wird 0 fБr `checksum' und `file_size'
eingesetzt. Wenn Sie `file_size' fБr die PrБfsumme benФtigen, kФnnen Sie
versuchen, die PrБfsumme beim EinfБgen entsprechend zu modifizieren.
MФgliche Angaben fБr t sind:
BYTE 8 Bits
WORD_LH 16 Bits, niederwertiges Byte zuerst
WORD_HL 16 Bits, hФherwertiges Byte zuerst
LONG_LH 32 Bits, niedrigstwertiges Byte zuerst
LONG_HL 32 Bits, hФchstwertiges Byte zuerst.
Beispiel:
CHECKSUM=0 16 WORD_LH 0 (checksum^value)
Die PrБfsumme wird durch 16-bitweises Exklusiv-Oder Бber die ersten 32
Bytes gebildet.
Wenn keine PrБfsumme benФtigt wird, kФnnen Sie
CHECKSUM=0 0 BYTE 0 0
verwenden.
COMPRESS=(NO | MSP | PCX)
Kompressionsmethode fБr die Grafikdaten. Bei COMPRESS=NO wird nicht
komprimiert, die Grafikdaten werden unverДndert in die Grafikdatei
geschrieben. Bei COMPRESS=MSP wird das Kompressionsverfahren wie es im
neueren MSP-Dateiformat verwendet wird angewandt, bei COMPRESS=PCX wird
ein RLE-Verfahren wie in PCX-Dateien angewandt.
FIRST_BYTE=(TOP | BOTTOM) (LEFT | RIGHT)
Hiermit wird eingestellt, welcher Ecke der Grafik das erste Byte der
Grafikdaten entspricht. Mit TOP kommt die oberste Zeile zuerst, mit BOTTOM
kommt die unterste Zeile zuerst. Mit LEFT kommt die linke Spalte jeder
Zeile zuerst, mit RIGHT kommt die rechte Spalte jeder Zeile zuerst. Die
Einstellung
FIRST_BYTE=TOP LEFT
kommt am hДufigsten vor.
HEADER=[s]
Der Kopf der Grafikdatei. Diese Codesequenz leitet die Grafikdatei ein.
Es kФnnen die Variablen res_x, res_y, width, height, checksum und
file_size verwendet werden.
ROW_BEGIN=[s]
Die Codesequenz, die eine Grafikzeile einleitet. Auf diese Sequenz folgen
unmittelbar die binДren Grafikdaten. Die Breite der Grafik (Grafikpunkte)
ist in der Variablen `pixels' verfБgbar. Ъblicherweise leer.
ROW_END=[s]
Die Codesequenz, die unmittelbar nach einer Grafikzeile geschickt wird.
Ъblicherweise leer.
TRAILER=[s]
Der Nachspann der Grafikdatei. Diese Codesequenz wird am Ende der
Grafikdatei eingefБgt. Es kФnnen die Variablen res_x, res_y, width, height
und checksum verwendet werden.
ΓòÉΓòÉΓòÉ 3.2. 3.2 Codesequenzen ΓòÉΓòÉΓòÉ
Codesequenzen bestehen im allgemeinen aus mehreren Kommandos, die jeweils
durch Leerzeichen getrennt werden. FБr jedes einzelne Kommando gibt es die
folgenden MФglichkeiten:
ASCII-Steuercodenamen und andere Codenamen
Diese Kommandos fБgen ein Byte ein:
NUL Code 00(hex) 0(dez).
SOH Code 01(hex) 1(dez).
STX Code 02(hex) 2(dez).
ETX Code 03(hex) 3(dez).
EOT Code 04(hex) 4(dez).
ENQ Code 05(hex) 5(dez).
ACK Code 06(hex) 6(dez).
BEL Code 07(hex) 7(dez).
BS Code 08(hex) 8(dez).
TAB Code 09(hex) 9(dez).
HT Code 09(hex) 9(dez).
LF Code 0A(hex) 10(dez).
VT Code 0B(hex) 11(dez).
FF Code 0C(hex) 12(dez).
CR Code 0D(hex) 13(dez).
SO Code 0E(hex) 14(dez).
SI Code 0F(hex) 15(dez).
DLE Code 10(hex) 16(dez).
DC1 Code 11(hex) 17(dez).
DC2 Code 12(hex) 18(dez).
DC3 Code 13(hex) 19(dez).
DC4 Code 14(hex) 20(dez).
NAK Code 15(hex) 21(dez).
SYN Code 16(hex) 22(dez).
ETB Code 17(hex) 23(dez).
CAN Code 18(hex) 24(dez).
EM Code 19(hex) 25(dez).
SUB Code 1A(hex) 26(dez).
ESC Code 1B(hex) 27(dez).
FS Code 1C(hex) 28(dez).
GS Code 1D(hex) 29(dez).
RS Code 1E(hex) 30(dez).
US Code 1F(hex) 31(dez).
DEL Code 7F(hex) 127(dez).
Klartext
Diese Kommandos fБgen ein Byte oder mehrere Bytes ein:
'x Einzelzeichen. Ein beliebiges Zeichen nach dem einfachen
AnfБhrungszeichen ' wird direkt Бbernommen.
"xxx" Mehrere Zeichen. Alle Zeichen zwischen dem doppelten
AnfБhrungszeichen " und dem nДchsten " in derselben Zeile werden
direkt Бbernommen.
Zahlen
Diese Kommandos fБgen ein Byte ein:
0### Oktalzahl. # sind die einzelnen Ziffern (0-7).
0x## Hexadezimalzahl. # sind die einzelnen Ziffern (0-9, A-F).
### Dezimalzahl. # sind die einzelnen Ziffern (0-9). Vorsicht: Bei
fБhrender Null wird eine Zahl als Oktalzahl interpretiert (siehe
0###).
Steuerzeichen
Dieses Kommando fБgt ein Byte ein:
^A Steuerzeichen: ^a bis ^z und ^A bis ^Z ergeben Codes 1 bis 26, ^@
ergibt Code 0.
Wiederholung
Dieses Kommando fБhrt eine feste Anzahl von Wiederholungen des direkt
folgenden Kommandos aus.
REP# Das folgende Kommando wird #-mal (1 bis 256) wiederholt. Bei
mehreren aufeinanderfolgenden REP-Kommandos wird nur das letzte
beachtet.
EinfБgen eines Parameters in die Codesequenz
Diese Kommandos werten einen Ausdruck aus und fБgen das Ergebnis als Byte,
16-Bit-Wort oder 32-Bit-Wort ein:
DEC# Ausdruck
Der Wert wird als Dezimalzahl mit fБhrenden Nullen (# (1-9) Stellen)
eingefБgt.
BYTE Ausdruck
Der Wert wird als Byte (untere 8 Bits des Ergebnisses) eingefБgt.
WORD_LH Ausdruck
Der Wert wird als 16-Bit-Wort (untere 16 Bits des Ergebnisses, 2
Bytes) eingefБgt, das niederwertige Byte zuerst, dann das
hФherwertige.
WORD_HL Ausdruck
Der Wert wird als 16-Bit-Wort (untere 16 Bits des Ergebnisses, 2
Bytes) eingefБgt, das hФherwertige Byte zuerst, dann das
niederwertige.
LONG_LH Ausdruck
Der Wert wird als 32-Bit-Wort (4 Bytes) eingefБgt, das
niedrigstwertige Byte zuerst, das hФchstwertige zuletzt.
LONG_HL Ausdruck
Der Wert wird als 32-Bit-Wort (4 Bytes) eingefБgt, das hФchstwertige
Byte zuerst, das niedrigstwertige zuletzt.
Der Ausdruck wird mit 32-Bit-Arithmetik ausgewertet. Ein Ausdruck ist wie
folgt aufgebaut (die Klammern sind erforderlich!):
Dezimalzahl
Dezimalzahl von 0 bis 2147483647
Hexadezimalzahl
Hexadezimalzahl von 0x0 bis 0xffffffff
Variable
Siehe unten
( Ausdruck )
ЪberflБssige Klammerung
- Ausdruck
Vorzeichenumkehrung
~ Ausdruck
Bitweise NOT-VerknБpfung (Einerkomplement)
( Ausdruck + Ausdruck )
Addition
( Ausdruck - Ausdruck )
Subtraktion
( Ausdruck * Ausdruck )
Multiplikation
( Ausdruck / Ausdruck )
Division
( Ausdruck % Ausdruck )
Rest bei Division
( Ausdruck & Ausdruck )
Bitweise AND-VerknБpfung (Konjunktion)
( Ausdruck | Ausdruck )
Bitweise OR-VerknБpfung (Disjunktion)
( Ausdruck ^ Ausdruck )
Bitweise XOR-VerknБpfung
( Ausdruck << Ausdruck )
Nach links schieben (1 << 3 ist 8)
( Ausdruck >> Ausdruck )
Nach rechts schieben (10 >> 1 ist 5)
( Ausdruck < Ausdruck )
Vergleich: 1 falls kleiner als, sonst 0
( Ausdruck = Ausdruck )
Vergleich: 1 falls gleich, sonst 0
Nur bei mehrfachem Auftreten desselben Operators kФnnen Klammern
weggelassen werden, es wird dann Linksklammerung verwendet. Dies gilt
nicht fБr die Operatoren `<<', `>>', `<' und `='. Z.B. kann
(((1+2)+3)+4)
auf diese Weise abgekБrzt werden:
(1+2+3+4)
Aber z.B. bei ((3*2)+1) kФnnen keine Klammern weggelassen werden.
FБr Variable kФnnen die folgenden Namen eingesetzt werden:
res_x Horizontale AuflФsung (DPI, +resolution-x)
res_y Vertikale AuflФsung (DPI, +resolution-y)
width Blattbreite (Pixels, +width)
height BlatthФhe (Pixels, +height)
one_lf Der mit ONE_LINE_FEED= eingestellte Wert
blank Der mit BLANK_WIDTH= eingestellte Wert
max_lf Der mit MAX_LF= eingestellte Wert
pixels Die Breite der Grafik
line_feed Die GrФсe des Zeilenvorschubs
form_feed Die GrФсe des Blattvorschubs
pos_x X-Position (Grafikpunkte) bei POS_X=
checksum PrБfsumme
value FБr Berechnung der PrБfsumme
file_size DateilДnge (nur bei HEADER=)
vmu Vertical Motion Unit (Wert von VMU=). Falls VMU= nicht gesetzt
oder auf 0 gesetzt ist, wird fБr vmu der Wert 1 eingesetzt
Fortsetzungszeile
Wenn eine Zeile mit `\' nach einem Leerzeichen endet, wird die nДchste
Zeile (welche keine Kommentarzeile sein darf) als Fortsetzungszeile
betrachtet. Auf diese Weise kФnnen lange Codesequenzen besser eingegeben
werden. Jedoch muс jeder Ausdruck vollstДndig in einer Eingabezeile
eingegeben werden.
═══ 3.3. 3.3 Beispiele fБr Codesequenzen ═══
240-DPI-Grafikmodus des EPSON FX-80:
ESC '* 3 WORD_LH pixels
Hexadezimal sieht das so aus: 1B 2A 03 n1 n2, wobei <n1>+256*<n2> die Breite
der Grafik in Grafikpunkten (Spalten) ist.
Zeilenvorschub bei NEC P6:
FS '3 BYTE line_feed LF
Hexadezimal sieht das so aus: 1C 33 n1 0A. Das Papier wird um <n1>/360 Zoll
bewegt.
Horizontale Positionierung bei C.ITOH 8510A:
ESC 'F DEC4 pos_x
Hexadezimal sieht das so aus: 1B 46 n1 n2 n3 n4, wobei n1 bis n4 Ziffern
(hexadezimal 30 bis 39) sind, die die horizontale Position angeben.
24-Nadel-Grafikmodus, bei dem die Anzahl der Bytes + 1 angegeben wird:
ESC "[g" WORD_LH ((pixels*3)+1) 5
Wenn z.B. 100 Grafikspalten gedruckt werden, sieht das hexadezimal so aus:
1B 5B 67 2D 01 05
^^^^^
301 = 3*100+1
Sinnloses Beispiel:
^A "abc" TAB ' 010 10 0x10 " ' " REP2 "ab" 0
Das ist hexadezimal: 01 61 62 63 09 20 08 0A 10 20 27 20 61 62 61 62 00.
Beispiel fБr Fortsetzungszeilen:
INIT1=CAN DC2 ESC '5 0 ESC 'F ESC 'H ESC 'I 0 ESC 'T ESC 'U 0 \
ESC 'X 1 255 ESC "[@" 4 0 0 0 17 1 ESC '_ 0 ESC '- 0 \
ESC "[\" 4 0 0 0 0x68 0x01 ESC '3 BYTE one_lf CR
═══ 4. 4 Aufbau der Textdatei fБr eine BinДrdatei ═══
Eine Textdatei kann Kommentarzeilen enthalten. Diese beginnen mit einem `*'
oder `%'. Alle darauffolgenden Zeichen dieser Zeilen werden dann ignoriert.
Auch Leerzeilen werden ignoriert.
Alle anderen Zeilen enthalten Codesequenzen, die die in die BinДrdatei zu
schreibenden Daten angeben. Die hier verwendbaren Codesequenzen sind eine
Teilmenge der bei Erzeugung einer Parameterdatei verwendbaren Codesequenzen.
ASCII-Steuercodenamen und andere Codenamen
Diese Kommandos fБgen ein Byte ein:
NUL Code 00(hex) 0(dez).
SOH Code 01(hex) 1(dez).
STX Code 02(hex) 2(dez).
ETX Code 03(hex) 3(dez).
EOT Code 04(hex) 4(dez).
ENQ Code 05(hex) 5(dez).
ACK Code 06(hex) 6(dez).
BEL Code 07(hex) 7(dez).
BS Code 08(hex) 8(dez).
TAB Code 09(hex) 9(dez).
HT Code 09(hex) 9(dez).
LF Code 0A(hex) 10(dez).
VT Code 0B(hex) 11(dez).
FF Code 0C(hex) 12(dez).
CR Code 0D(hex) 13(dez).
SO Code 0E(hex) 14(dez).
SI Code 0F(hex) 15(dez).
DLE Code 10(hex) 16(dez).
DC1 Code 11(hex) 17(dez).
DC2 Code 12(hex) 18(dez).
DC3 Code 13(hex) 19(dez).
DC4 Code 14(hex) 20(dez).
NAK Code 15(hex) 21(dez).
SYN Code 16(hex) 22(dez).
ETB Code 17(hex) 23(dez).
CAN Code 18(hex) 24(dez).
EM Code 19(hex) 25(dez).
SUB Code 1A(hex) 26(dez).
ESC Code 1B(hex) 27(dez).
FS Code 1C(hex) 28(dez).
GS Code 1D(hex) 29(dez).
RS Code 1E(hex) 30(dez).
US Code 1F(hex) 31(dez).
DEL Code 7F(hex) 127(dez).
Klartext
Diese Kommandos fБgen ein Byte oder mehrere Bytes ein:
'x Einzelzeichen. Ein beliebiges Zeichen nach dem einfachen
AnfБhrungszeichen ' wird direkt Бbernommen.
"xxx" Mehrere Zeichen. Alle Zeichen zwischen dem doppelten
AnfБhrungszeichen " und dem nДchsten " in derselben Zeile werden
direkt Бbernommen.
Zahlen
Diese Kommandos fБgen ein Byte ein:
0### Oktalzahl. # sind die einzelnen Ziffern (0-7).
0x## Hexadezimalzahl. # sind die einzelnen Ziffern (0-9, A-F).
### Dezimalzahl. # sind die einzelnen Ziffern (0-9). Vorsicht: Bei
fБhrender Null wird eine Zahl als Oktalzahl interpretiert (siehe
0###).
Steuerzeichen
Dieses Kommando fБgt ein Byte ein:
^A Steuerzeichen: ^a bis ^z und ^A bis ^Z ergeben Codes 1 bis 26, ^@
ergibt Code 0.
ΓòÉΓòÉΓòÉ 5. 5 Hinweise ΓòÉΓòÉΓòÉ
Einige der Einstellungen kФnnen auch Бber Kommandozeilenoptionen von dvidot
verstellt werden -- das ist der Weg der vorzuziehen ist. Pro Drucker (und
Modus) sollte nur eine Parameterdatei verwendet werden. Ъber die
Parameterdatei werden fБr die einstellbaren Dinge, z.B. Pfad fБr ZeichensДtze,
lediglich halbwegs sinnvolle Werte vorgegeben, die eigentliche Einstellung
geschieht Бber die Kommandozeilenoptionen und die Konfigurationsdateien.
Bitte die mitgelieferten Parameterdateien nicht verДndern! (Sie kФnnen diese
aber -- unter anderem Namen -- weiterverwerten.)
Wenn Sie eine neue Parameterdatei erstellt und erfolgreich getestet haben,
sollten Sie diese an den Autor (Adresse siehe readme.ger) schicken, damit auch
andere Leute etwas von Ihrer MБhe haben und fБr jeden Drucker ein gewisser
Standard gewahrt wird.
Wenn Sie Ihren Nadeldrucker nicht mit dvidot und makedot betreiben kФnnen,
sollten Sie sich mit dem Autor in Verbindung setzen, so daс dvidot und makedot
entsprechend erweitert werden kФnnen.
═══ 6. 6 Anhang: Alte Methode fБr Parameter in Codesequenzen ═══
Zum VerstДndnis alter DOT-Dateien sind ist hier die alte Methode fБr die
EinfБgung von Parametern in Codesequenzen erklДrt. Sie kФnnen jedoch alte
DOT-Dateien mit makedot konvertieren lassen, dabei werden auch die
Codesequenzen konvertiert.
Es sind folgende Kommandos mФglich (xx siehe unten):
xx+#
Zuvor # zum Parameter addieren
xx-#
Zuvor # vom Parameter subtrahieren
xx*#+#
Zuvor Parameter mit erster Zahl multiplizieren, dann zweite Zahl addieren
xx*#-#
Zuvor Parameter mit erster Zahl multiplizieren, dann zweite Zahl
subtrahieren
Nur xx ist nicht zulДssig, Sie sollten stattdessen xx+0 verwenden. FБr xx gibt
es folgende MФglichkeiten:
D1 bis D9
Der Parameter wird als Dezimalzahl (Text) mit fБhrenden Nullen eingefБgt
(D1: aufgefБllt auf eine Stelle, D9: aufgefБllt auf neun Stellen).
L
Der Parameter wird als BinДrzahl (ein Byte) eingefБgt. Es wird das
niederwertige Byte verwendet.
H
Der Parameter wird als BinДrzahl (ein Byte) eingefБgt. Es wird das
hФherwertige Byte verwendet.
LH
Der Parameter wird als BinДrzahl in zwei Bytes zerlegt eingefБgt
(niederwertiges Byte zuerst, dann hФherwertiges).
HL
Der Parameter wird als BinДrzahl in zwei Bytes zerlegt eingefБgt
(hФherwertiges Byte zuerst, dann niederwertiges).
Der Parameter hДngt davon ab, fБr welchen Zweck die Codesequenz verwendet
wird:
INIT1 one_line_feed
INIT2 one_line_feed
GRAPH_MODE pixels
LINE_FEED line_feed
POS_X pos_x